/**
 * @program: LeetCode
 * @description: LeetCode : 2527. 查询数组 Xor 美丽值
 * @author: WXY
 * @create: 2023-02-03 21:10
 * @Version 1.0
 * 给你一个下标从 0 开始的整数数组 nums 。
 * 三个下标 i ，j 和 k 的 有效值 定义为 ((nums[i] | nums[j]) & nums[k]) 。
 * 个数组的 xor 美丽值 是数组中所有满足 0 <= i, j, k < n  的三元组 (i, j, k) 的 有效值 的异或结果。
 * 请你返回 nums 的 xor 美丽值。
 *
 *  ((nums[i] | nums[j]) & nums[k]) 和 ((nums[j] | nums[i]) & nums[k]) 相同，所以异或是 0；
 *  因此只要考录i == j 的情况，
 *  此时 ： (nums[i] | nums[j]) & nums[k]) = nums[i] & nums[k] 。 nums[i] & nums[k] 和 nums[k] & nums[i] 相同
 *  因此只要考虑 i == k 的情况
 *  综上：只要将全部数字异或即可
 *
 **/
public class Num2527_xorBeauty {
    public static int xorBeauty(int[] arr) {
        int ans = 0;
        for (int i = 0; i < arr.length; i++) {
            ans ^= arr[i];
        }
        return ans;
    }

    public static void main(String[] args) {
        int[] arr = {1, 4};
        int x = xorBeauty(arr);
        System.out.println(x);
    }
}
